home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 722 / 722.xpi / chrome / noscript.jar / content / noscript / clearClick.js < prev    next >
Text File  |  2010-02-12  |  3KB  |  112 lines

  1. var ClearClick = {
  2.   params: null,
  3.   canClose: true,
  4.   mustClose: false,
  5.   
  6.   init: function() {
  7.     this.dialog = document.documentElement;
  8.     if (!(window.arguments && window.arguments.length)) this.dialog.cancelDialog();
  9.     this.params = window.arguments[0];
  10.     this.params.locked = true;
  11.     var url = this.url = this.params.url;
  12.     
  13.     var img = this.params.img;
  14.     
  15.     var preview = document.getElementById("trueImg");
  16.     preview.src = img.src;
  17.     preview.width = img.width;
  18.     preview.height = img.height;
  19.     
  20.     preview = document.getElementById("fakeImg");
  21.     preview.src = img.altSrc;
  22.     preview.width = img.width;
  23.     preview.height = img.height;
  24.     
  25.     if (url.length > 50) url = url.substring(0, 23) + "..." + url.slice(-23);
  26.     document.getElementById("hiddenContentURL").value = url;
  27.     
  28.     var pref = noscriptUtil.service.getPref("clearClick");
  29.     Array.forEach(document.getElementById("clearClickOpts").getElementsByTagName("checkbox"), function(cbx) {        
  30.       cbx.setAttribute("checked", !(pref & parseInt(cbx.getAttribute("value"))) ? "false" : "true");
  31.     });
  32.     
  33.   },
  34.   
  35.   browse: function() {
  36.     noscriptUtil.browse(this.url, null);
  37.     this.dialog.cancelDialog();
  38.   },
  39.   
  40.   disclosure: function() {
  41.     noscriptUtil.browse("http://noscript.net/faq#clearclick", null);
  42.     this.dialog.cancelDialog();
  43.   },
  44.   
  45.   end: function() {
  46.     if (!this.canClose) {
  47.       this.mustClose = true;
  48.       return;
  49.     }
  50.     this.params.locked = document.getElementById("keepLocked").checked;
  51.     var pref = 0;
  52.     Array.forEach(document.getElementById("clearClickOpts").getElementsByTagName("checkbox"), function(cbx) {
  53.       if (cbx.checked) pref = pref | parseInt(cbx.getAttribute("value"));
  54.     });
  55.     noscriptUtil.service.setPref("clearClick", pref);
  56.   },
  57.   
  58.   swap: function(stack) {
  59.     stack.appendChild(stack.firstChild);
  60.   },
  61.   
  62.   report: function() {
  63.     this.dialog.getButton("extra1").disabled = true;
  64.     
  65.     var report = document.getElementById("report");
  66.     var reportId = document.getElementById("report-id");
  67.     var progress = document.getElementById("progress");
  68.     
  69.     var xhr = new XMLHttpRequest();
  70.     xhr.onreadystatechange = function() {
  71.       switch(xhr.readyState) {
  72.         case 1:
  73.         case 2:
  74.         case 3:
  75.           ClearClick.canClose = false;
  76.           report.collapsed = false;
  77.           reportId.value = "";
  78.           progress.collapsed = false;
  79.           break;
  80.         case 4:
  81.           ClearClick.canClose = true;
  82.           progress.collapsed = true;
  83.           reportId.value = xhr.responseText.replace(/\s*OK\s*/g, '');
  84.           reportId.collapsed = false;
  85.           reportId.style.visibility = "visible";
  86.           if (ClearClick.mustClose) ClearClick.end();
  87.       }
  88.     };
  89.     
  90.     xhr.open("POST", "http://noscript.net/ws/clearclick/", true);
  91.     
  92.     var p = this.params;
  93.     var data = {
  94.       url: p.url,
  95.       page_url: p.pageURL,
  96.       top_url: p.topURL,
  97.       x: p.pageX,
  98.       y: p.pageY,
  99.       zoom: p.zoom,
  100.       img1: p.img.src,
  101.       img2: p.img.altSrc,
  102.       version: noscriptUtil.service.VERSION
  103.     };
  104.     var post = [];
  105.     for(var k in data) {
  106.       post.push(k + "=" + escape(data[k]));
  107.     }
  108.     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  109.     xhr.send(post.join("&"));
  110.   }
  111.   
  112. }